package com.zhang.util;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLDecoder;

/**
 * 上传文件工具类
 */
public class UploadFile {

    /**
     * 上传文件
     * @param file  MultipartFile 用户上传的文件对象
     * @param filePath 服务器保存客户端上传文件的路径
     * @return 文件名字
     */
    public static String upload(MultipartFile file,String filePath){

        System.out.println("===========>" +file + "============>" + filePath);

        //获取服务器传过来的真实文件名字
        String originalFilename = file.getOriginalFilename();

        //通过字符串截取的方法将客户端的文件名, 用时间毫秒数作为名字的新文件名
        String filename =System.currentTimeMillis() + originalFilename.substring(originalFilename.lastIndexOf("."));

        URL url = null;
        try {
            //得到文件目录的对象
            url = Thread.currentThread().getContextClassLoader()
                    .getResources(filePath).nextElement();

            String file1 = URLDecoder.decode(url.getFile(),"utf-8");
            //将客户端的文件写入到服务器的对应目录下面
            file.transferTo(new File(file1 + "/" + filename));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return filename;
    }
}
